[INFO] cloning repository https://github.com/bwhetherington/toy-lang
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bwhetherington/toy-lang" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbwhetherington%2Ftoy-lang", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbwhetherington%2Ftoy-lang'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0179f440b0c40fc664553f0008707dceb1b88819
[INFO] fixing bwhetherington/toy-lang against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbwhetherington%2Ftoy-lang" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/bwhetherington/toy-lang
[INFO] finished tweaking git repo https://github.com/bwhetherington/toy-lang
[INFO] tweaked toml for git repo https://github.com/bwhetherington/toy-lang written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/bwhetherington/toy-lang on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/bwhetherington/toy-lang already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7d42e1abe35863c8271274950345629afbe8c45f24b924b87219743417393e5a
[INFO] running `Command { std: "docker" "start" "7d42e1abe35863c8271274950345629afbe8c45f24b924b87219743417393e5a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7d42e1abe35863c8271274950345629afbe8c45f24b924b87219743417393e5a" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7d42e1abe35863c8271274950345629afbe8c45f24b924b87219743417393e5a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7d42e1abe35863c8271274950345629afbe8c45f24b924b87219743417393e5a" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr] note: Switching to Edition 2021 will enable the use of the version 2 feature resolver in Cargo.
[INFO] [stderr] This may cause some dependencies to be built with fewer features enabled than previously.
[INFO] [stderr] More information about the resolver changes may be found at https://doc.rust-lang.org/nightly/edition-guide/rust-2021/default-cargo-resolver.html
[INFO] [stderr] When building the following dependencies, the given features will no longer be used:
[INFO] [stderr] 
[INFO] [stderr]   standback v0.2.17 (as host dependency) removed features: std
[INFO] [stderr]   syn v1.0.67 (as host dependency) removed features: clone-impls, default, full, visit
[INFO] [stderr] 
[INFO] [stderr]    Compiling proc-macro2 v1.0.24
[INFO] [stderr]    Compiling version_check v0.9.3
[INFO] [stderr]    Compiling unicode-xid v0.2.1
[INFO] [stderr]    Compiling syn v1.0.67
[INFO] [stderr]    Compiling proc-macro-hack v0.5.19
[INFO] [stderr]    Compiling const_fn v0.4.7
[INFO] [stderr]    Compiling libc v0.2.93
[INFO] [stderr]    Compiling peg-runtime v0.7.0
[INFO] [stderr]     Checking nohash-hasher v0.2.0
[INFO] [stderr]    Compiling standback v0.2.17
[INFO] [stderr]    Compiling time v0.2.26
[INFO] [stderr]    Compiling quote v1.0.8
[INFO] [stderr]    Compiling peg-macros v0.7.0
[INFO] [stderr]     Checking peg v0.7.0
[INFO] [stderr]    Compiling time-macros-impl v0.1.1
[INFO] [stderr]     Checking time-macros v0.1.1
[INFO] [stderr]     Checking instant v0.1.9
[INFO] [stderr]     Checking rscript2 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/main.rs from 2018 edition to 2021
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.34s
[INFO] [stderr] crater-edition-check: rscript2 v0.1.0 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr]    Compiling standback v0.2.17
[INFO] [stderr]    Compiling syn v1.0.67
[INFO] [stderr]    Compiling time-macros-impl v0.1.1
[INFO] [stderr]     Checking time-macros v0.1.1
[INFO] [stderr]     Checking time v0.2.26
[INFO] [stderr]     Checking instant v0.1.9
[INFO] [stderr]     Checking rscript2 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `file::FileLoader`
[INFO] [stdout]  --> src/module/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use file::FileLoader;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `expr`
[INFO] [stdout]  --> src/parser/mod.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 |     parser::{expr, module},
[INFO] [stdout]   |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `object`
[INFO] [stdout]    --> src/runtime/engine.rs:103:14
[INFO] [stdout]     |
[INFO] [stdout] 103 | macro_rules! object {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EngineState`
[INFO] [stdout]   --> src/runtime/mod.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use engine::{Engine, EngineState};
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `file::FileLoader`
[INFO] [stdout]  --> src/module/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use file::FileLoader;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `expr`
[INFO] [stdout]  --> src/parser/mod.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 |     parser::{expr, module},
[INFO] [stdout]   |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `object`
[INFO] [stdout]    --> src/runtime/engine.rs:103:14
[INFO] [stdout]     |
[INFO] [stdout] 103 | macro_rules! object {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EngineState`
[INFO] [stdout]   --> src/runtime/mod.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use engine::{Engine, EngineState};
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileLoader` is never constructed
[INFO] [stdout]  --> src/module/file.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct FileLoader {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `resolve_package`, and `resolve_path` are never used
[INFO] [stdout]   --> src/module/file.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl FileLoader {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 34 |     pub fn new() -> FileLoader {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn resolve_package(&self, package: &PackageType) -> Option<PathBuf> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn resolve_path(&self, path: &ModulePath) -> Option<PathBuf> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PackageType` is never used
[INFO] [stdout]  --> src/module/resolve.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum PackageType {
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModulePath` is never constructed
[INFO] [stdout]  --> src/module/resolve.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct ModulePath {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `resolve` and `is_relative` are never used
[INFO] [stdout]   --> src/module/resolve.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl ModulePath {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn resolve(src: &str) -> ModulePath {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn is_relative(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_object_proto` is never used
[INFO] [stdout]    --> src/runtime/engine.rs:559:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | impl Engine {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 559 |     fn get_object_proto(&self) -> TLResult<Ptr<Object>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileLoader` is never constructed
[INFO] [stdout]  --> src/module/file.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct FileLoader {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `resolve_package`, and `resolve_path` are never used
[INFO] [stdout]   --> src/module/file.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl FileLoader {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 34 |     pub fn new() -> FileLoader {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn resolve_package(&self, package: &PackageType) -> Option<PathBuf> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn resolve_path(&self, path: &ModulePath) -> Option<PathBuf> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PackageType` is never used
[INFO] [stdout]  --> src/module/resolve.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum PackageType {
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModulePath` is never constructed
[INFO] [stdout]  --> src/module/resolve.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct ModulePath {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `resolve` and `is_relative` are never used
[INFO] [stdout]   --> src/module/resolve.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl ModulePath {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn resolve(src: &str) -> ModulePath {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn is_relative(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_object_proto` is never used
[INFO] [stdout]    --> src/runtime/engine.rs:559:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | impl Engine {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 559 |     fn get_object_proto(&self) -> TLResult<Ptr<Object>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `expr`
[INFO] [stdout]  --> src/parser/mod.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 |     parser::{expr, module},
[INFO] [stdout]   |              ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `object`
[INFO] [stdout]    --> src/runtime/engine.rs:103:14
[INFO] [stdout]     |
[INFO] [stdout] 103 | macro_rules! object {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EngineState`
[INFO] [stdout]   --> src/runtime/mod.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use engine::{Engine, EngineState};
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `expr`
[INFO] [stdout]  --> src/parser/mod.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 |     parser::{expr, module},
[INFO] [stdout]   |              ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `object`
[INFO] [stdout]    --> src/runtime/engine.rs:103:14
[INFO] [stdout]     |
[INFO] [stdout] 103 | macro_rules! object {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EngineState`
[INFO] [stdout]   --> src/runtime/mod.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use engine::{Engine, EngineState};
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_relative` is never used
[INFO] [stdout]   --> src/module/resolve.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl ModulePath {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn is_relative(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `noop_engine` is never used
[INFO] [stdout]    --> src/runtime/mod.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub fn noop_engine() -> Engine {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_object_proto` is never used
[INFO] [stdout]    --> src/runtime/engine.rs:559:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | impl Engine {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 559 |     fn get_object_proto(&self) -> TLResult<Ptr<Object>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_relative` is never used
[INFO] [stdout]   --> src/module/resolve.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl ModulePath {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn is_relative(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `noop_engine` is never used
[INFO] [stdout]    --> src/runtime/mod.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub fn noop_engine() -> Engine {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_object_proto` is never used
[INFO] [stdout]    --> src/runtime/engine.rs:559:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | impl Engine {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 559 |     fn get_object_proto(&self) -> TLResult<Ptr<Object>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.60s
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr] note: Switching to Edition 2021 will enable the use of the version 2 feature resolver in Cargo.
[INFO] [stderr] This may cause some dependencies to be built with fewer features enabled than previously.
[INFO] [stderr] More information about the resolver changes may be found at https://doc.rust-lang.org/nightly/edition-guide/rust-2021/default-cargo-resolver.html
[INFO] [stderr] When building the following dependencies, the given features will no longer be used:
[INFO] [stderr] 
[INFO] [stderr]   standback v0.2.17 (as host dependency) removed features: std
[INFO] [stderr]   syn v1.0.67 (as host dependency) removed features: clone-impls, default, full, visit
[INFO] [stderr] 
[INFO] [stderr]     Checking rscript2 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr] error: errors present after applying fixes to crate `rscript2`
[INFO] [stderr]  --> src/parser/grammar.rs
[INFO] [stderr]  ::: src/runtime/engine.rs
[INFO] [stderr]  ::: src/runtime/mod.rs
[INFO] [stderr]   = cause: error: expected "["
[INFO] [stderr]               --> src/parser/grammar.rs:166:13
[INFO] [stderr]                |
[INFO] [stderr]            166 |         = # #parse_string_literal(start) _ inner:r() _ # #parse_string_literal(end) { inner }
[INFO] [stderr]                |             ^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/runtime/engine.rs:434:19
[INFO] [stderr]                |
[INFO] [stderr]            434 |             match self.eval_method(&iter, self.idents.next, &[])? {
[INFO] [stderr]                |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |                   |
[INFO] [stderr]                |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]                |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            435 |                 Value::None => break,
[INFO] [stderr]            436 |                 other => f(&other)?,
[INFO] [stderr]                |                 -----
[INFO] [stderr]                |                 |
[INFO] [stderr]                |                 `other` calls a custom destructor
[INFO] [stderr]                |                 `other` will be dropped later as of Edition 2024
[INFO] [stderr]            437 |             }
[INFO] [stderr]            438 |         }
[INFO] [stderr]                |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: `other` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]                = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/runtime/mod.rs:119:42
[INFO] [stderr]                |
[INFO] [stderr]            112 |                 let obj = obj.borrow_mut();
[INFO] [stderr]                |                     ---
[INFO] [stderr]                |                     |
[INFO] [stderr]                |                     `obj` calls a custom destructor
[INFO] [stderr]                |                     `obj` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            119 |                 if let Some(mut proto) = obj.proto.clone().map(Value::Object) {
[INFO] [stderr]                |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |                                          |
[INFO] [stderr]                |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            122 |             }
[INFO] [stderr]                |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]            note: `obj` invokes this custom destructor
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 1 previous error; 2 warnings emitted
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stdout] warning: reserved token in Rust 2024
[INFO] [stdout]    --> src/parser/grammar.rs:166:11
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |           ^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/reserved-syntax.html>
[INFO] [stdout]     = note: `--force-warn rust-2024-guarded-string-incompatible-syntax` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: insert whitespace here to avoid this being parsed as a forbidden token in Rust 2024
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = # #parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reserved token in Rust 2024
[INFO] [stdout]    --> src/parser/grammar.rs:166:55
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |                                                       ^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/reserved-syntax.html>
[INFO] [stdout] help: insert whitespace here to avoid this being parsed as a forbidden token in Rust 2024
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ # #parse_string_literal(end) { inner }
[INFO] [stdout]     |                                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]    --> src/runtime/engine.rs:104:14
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ($engine:expr, {$($field:ident : $value:expr),*}) => {{
[INFO] [stdout]     |              ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout]     = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ($engine:expr_2021, {$($field:ident : $value:expr),*}) => {{
[INFO] [stdout]     |                  +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]    --> src/runtime/engine.rs:104:45
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ($engine:expr, {$($field:ident : $value:expr),*}) => {{
[INFO] [stdout]     |                                             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ($engine:expr, {$($field:ident : $value:expr_2021),*}) => {{
[INFO] [stdout]     |                                                 +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/runtime/engine.rs:434:19
[INFO] [stdout]     |
[INFO] [stdout] 434 |             match self.eval_method(&iter, self.idents.next, &[])? {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 435 |                 Value::None => break,
[INFO] [stdout] 436 |                 other => f(&other)?,
[INFO] [stdout]     |                 -----
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `other` calls a custom destructor
[INFO] [stdout]     |                 `other` will be dropped later as of Edition 2024
[INFO] [stdout] 437 |             }
[INFO] [stdout] 438 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `other` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/runtime/mod.rs:119:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 let obj = obj.borrow_mut();
[INFO] [stdout]     |                     ---
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `obj` calls a custom destructor
[INFO] [stdout]     |                     `obj` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 119 |                 if let Some(mut proto) = obj.proto.clone().map(Value::Object) {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 122 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `obj` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reserved token in Rust 2024
[INFO] [stdout]    --> src/parser/grammar.rs:166:11
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |           ^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/reserved-syntax.html>
[INFO] [stdout]     = note: `--force-warn rust-2024-guarded-string-incompatible-syntax` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: insert whitespace here to avoid this being parsed as a forbidden token in Rust 2024
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = # #parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: errors present after applying fixes to crate `rscript2`
[INFO] [stdout] warning: reserved token in Rust 2024
[INFO] [stdout]    --> src/parser/grammar.rs:166:55
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |                                                       ^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/reserved-syntax.html>
[INFO] [stdout] help: insert whitespace here to avoid this being parsed as a forbidden token in Rust 2024
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ # #parse_string_literal(end) { inner }
[INFO] [stdout]     |                                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  --> src/parser/grammar.rs
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]    --> src/runtime/engine.rs:104:14
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ($engine:expr, {$($field:ident : $value:expr),*}) => {{
[INFO] [stdout]     |              ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout]     = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ($engine:expr_2021, {$($field:ident : $value:expr),*}) => {{
[INFO] [stdout]     |                  +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/runtime/engine.rs
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]    --> src/runtime/engine.rs:104:45
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ($engine:expr, {$($field:ident : $value:expr),*}) => {{
[INFO] [stdout]     |                                             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ($engine:expr, {$($field:ident : $value:expr_2021),*}) => {{
[INFO] [stdout]     |                                                 +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/runtime/mod.rs
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/runtime/engine.rs:434:19
[INFO] [stdout]     |
[INFO] [stdout] 434 |             match self.eval_method(&iter, self.idents.next, &[])? {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 435 |                 Value::None => break,
[INFO] [stdout] 436 |                 other => f(&other)?,
[INFO] [stdout]     |                 -----
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `other` calls a custom destructor
[INFO] [stdout]     |                 `other` will be dropped later as of Edition 2024
[INFO] [stdout] 437 |             }
[INFO] [stdout] 438 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `other` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]   = cause: error: expected "["
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/runtime/mod.rs:119:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 let obj = obj.borrow_mut();
[INFO] [stdout]     |                     ---
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `obj` calls a custom destructor
[INFO] [stdout]     |                     `obj` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 119 |                 if let Some(mut proto) = obj.proto.clone().map(Value::Object) {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 122 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `obj` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               --> src/parser/grammar.rs:166:13
[INFO] [stderr]                |
[INFO] [stderr]            166 |         = # #parse_string_literal(start) _ inner:r() _ # #parse_string_literal(end) { inner }
[INFO] [stderr]                |             ^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/runtime/engine.rs:434:19
[INFO] [stderr]                |
[INFO] [stderr]            434 |             match self.eval_method(&iter, self.idents.next, &[])? {
[INFO] [stderr]                |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |                   |
[INFO] [stderr]                |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]                |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            435 |                 Value::None => break,
[INFO] [stderr]            436 |                 other => f(&other)?,
[INFO] [stderr]                |                 -----
[INFO] [stderr]                |                 |
[INFO] [stderr]                |                 `other` calls a custom destructor
[INFO] [stderr]                |                 `other` will be dropped later as of Edition 2024
[INFO] [stderr]            437 |             }
[INFO] [stderr]            438 |         }
[INFO] [stderr]                |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: `other` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]                = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/runtime/mod.rs:119:42
[INFO] [stderr]                |
[INFO] [stderr]            112 |                 let obj = obj.borrow_mut();
[INFO] [stderr]                |                     ---
[INFO] [stderr]                |                     |
[INFO] [stderr]                |                     `obj` calls a custom destructor
[INFO] [stderr]                |                     `obj` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            119 |                 if let Some(mut proto) = obj.proto.clone().map(Value::Object) {
[INFO] [stderr]                |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |                                          |
[INFO] [stderr]                |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            122 |             }
[INFO] [stderr]                |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]            note: `obj` invokes this custom destructor
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 1 previous error; 2 warnings emitted
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stderr]    Migrating src/main.rs from 2021 edition to 2024
[INFO] [stderr] error: errors present after applying fixes to crate `rscript2`
[INFO] [stdout] warning: reserved token in Rust 2024
[INFO] [stdout]    --> src/parser/grammar.rs:166:11
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |           ^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/reserved-syntax.html>
[INFO] [stdout]     = note: `--force-warn rust-2024-guarded-string-incompatible-syntax` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: insert whitespace here to avoid this being parsed as a forbidden token in Rust 2024
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = # #parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  --> src/parser/grammar.rs
[INFO] [stdout] warning: reserved token in Rust 2024
[INFO] [stdout]    --> src/parser/grammar.rs:166:55
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |                                                       ^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/reserved-syntax.html>
[INFO] [stdout] help: insert whitespace here to avoid this being parsed as a forbidden token in Rust 2024
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ # #parse_string_literal(end) { inner }
[INFO] [stdout]     |                                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/runtime/engine.rs
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]    --> src/runtime/engine.rs:104:14
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ($engine:expr, {$($field:ident : $value:expr),*}) => {{
[INFO] [stdout]     |              ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout]     = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ($engine:expr_2021, {$($field:ident : $value:expr),*}) => {{
[INFO] [stdout]     |                  +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/runtime/mod.rs
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]    --> src/runtime/engine.rs:104:45
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ($engine:expr, {$($field:ident : $value:expr),*}) => {{
[INFO] [stdout]     |                                             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ($engine:expr, {$($field:ident : $value:expr_2021),*}) => {{
[INFO] [stdout]     |                                                 +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]   = cause: error: expected "["
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/runtime/engine.rs:434:19
[INFO] [stdout]     |
[INFO] [stdout] 434 |             match self.eval_method(&iter, self.idents.next, &[])? {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 435 |                 Value::None => break,
[INFO] [stdout] 436 |                 other => f(&other)?,
[INFO] [stdout]     |                 -----
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `other` calls a custom destructor
[INFO] [stdout]     |                 `other` will be dropped later as of Edition 2024
[INFO] [stdout] 437 |             }
[INFO] [stdout] 438 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `other` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               --> src/parser/grammar.rs:166:13
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/runtime/mod.rs:119:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 let obj = obj.borrow_mut();
[INFO] [stdout]     |                     ---
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `obj` calls a custom destructor
[INFO] [stdout]     |                     `obj` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 119 |                 if let Some(mut proto) = obj.proto.clone().map(Value::Object) {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 122 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `obj` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stderr]            166 |         = # #parse_string_literal(start) _ inner:r() _ # #parse_string_literal(end) { inner }
[INFO] [stderr]                |             ^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/runtime/engine.rs:434:19
[INFO] [stderr]                |
[INFO] [stderr]            434 |             match self.eval_method(&iter, self.idents.next, &[])? {
[INFO] [stderr]                |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |                   |
[INFO] [stderr]                |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]                |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            435 |                 Value::None => break,
[INFO] [stderr]            436 |                 other => f(&other)?,
[INFO] [stderr]                |                 -----
[INFO] [stderr]                |                 |
[INFO] [stderr]                |                 `other` calls a custom destructor
[INFO] [stderr]                |                 `other` will be dropped later as of Edition 2024
[INFO] [stderr]            437 |             }
[INFO] [stderr]            438 |         }
[INFO] [stderr]                |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: `other` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]                = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/runtime/mod.rs:119:42
[INFO] [stderr]                |
[INFO] [stderr]            112 |                 let obj = obj.borrow_mut();
[INFO] [stderr]                |                     ---
[INFO] [stderr]                |                     |
[INFO] [stderr]                |                     `obj` calls a custom destructor
[INFO] [stderr]                |                     `obj` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            119 |                 if let Some(mut proto) = obj.proto.clone().map(Value::Object) {
[INFO] [stderr]                |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |                                          |
[INFO] [stderr]                |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            122 |             }
[INFO] [stderr]                |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]            note: `obj` invokes this custom destructor
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 1 previous error; 2 warnings emitted
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stderr] error: errors present after applying fixes to crate `rscript2`
[INFO] [stderr]  --> src/parser/grammar.rs
[INFO] [stderr]  ::: src/runtime/engine.rs
[INFO] [stderr]  ::: src/runtime/mod.rs
[INFO] [stderr]   = cause: error: expected "["
[INFO] [stderr]               --> src/parser/grammar.rs:166:13
[INFO] [stderr]                |
[INFO] [stderr]            166 |         = # #parse_string_literal(start) _ inner:r() _ # #parse_string_literal(end) { inner }
[INFO] [stderr]                |             ^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/runtime/engine.rs:434:19
[INFO] [stderr]                |
[INFO] [stderr]            434 |             match self.eval_method(&iter, self.idents.next, &[])? {
[INFO] [stderr]                |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |                   |
[INFO] [stderr]                |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]                |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            435 |                 Value::None => break,
[INFO] [stderr]            436 |                 other => f(&other)?,
[INFO] [stderr]                |                 -----
[INFO] [stderr]                |                 |
[INFO] [stderr]                |                 `other` calls a custom destructor
[INFO] [stderr]                |                 `other` will be dropped later as of Edition 2024
[INFO] [stderr]            437 |             }
[INFO] [stderr]            438 |         }
[INFO] [stderr]                |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: `other` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]                = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]               --> src/runtime/mod.rs:119:42
[INFO] [stderr]                |
[INFO] [stderr]            112 |                 let obj = obj.borrow_mut();
[INFO] [stderr]                |                     ---
[INFO] [stderr]                |                     |
[INFO] [stderr]                |                     `obj` calls a custom destructor
[INFO] [stderr]                |                     `obj` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            119 |                 if let Some(mut proto) = obj.proto.clone().map(Value::Object) {
[INFO] [stderr]                |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |                                          |
[INFO] [stderr]                |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                |                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            122 |             }
[INFO] [stderr]                |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                |
[INFO] [stderr]                = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]            note: `obj` invokes this custom destructor
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stderr]                = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                = warning: this changes meaning in Rust 2024
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 1 previous error; 2 warnings emitted
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stdout] warning: reserved token in Rust 2024
[INFO] [stdout]    --> src/parser/grammar.rs:166:11
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |           ^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/reserved-syntax.html>
[INFO] [stdout]     = note: `--force-warn rust-2024-guarded-string-incompatible-syntax` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: insert whitespace here to avoid this being parsed as a forbidden token in Rust 2024
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = # #parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: reserved token in Rust 2024
[INFO] [stdout]    --> src/parser/grammar.rs:166:55
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |                                                       ^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/reserved-syntax.html>
[INFO] [stdout] help: insert whitespace here to avoid this being parsed as a forbidden token in Rust 2024
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ # #parse_string_literal(end) { inner }
[INFO] [stdout]     |                                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]    --> src/runtime/engine.rs:104:14
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ($engine:expr, {$($field:ident : $value:expr),*}) => {{
[INFO] [stdout]     |              ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout]     = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ($engine:expr_2021, {$($field:ident : $value:expr),*}) => {{
[INFO] [stdout]     |                  +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]    --> src/runtime/engine.rs:104:45
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ($engine:expr, {$($field:ident : $value:expr),*}) => {{
[INFO] [stdout]     |                                             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ($engine:expr, {$($field:ident : $value:expr_2021),*}) => {{
[INFO] [stdout]     |                                                 +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/runtime/engine.rs:434:19
[INFO] [stdout]     |
[INFO] [stdout] 434 |             match self.eval_method(&iter, self.idents.next, &[])? {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 435 |                 Value::None => break,
[INFO] [stdout] 436 |                 other => f(&other)?,
[INFO] [stdout]     |                 -----
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `other` calls a custom destructor
[INFO] [stdout]     |                 `other` will be dropped later as of Edition 2024
[INFO] [stdout] 437 |             }
[INFO] [stdout] 438 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `other` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/runtime/mod.rs:119:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 let obj = obj.borrow_mut();
[INFO] [stdout]     |                     ---
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `obj` calls a custom destructor
[INFO] [stdout]     |                     `obj` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 119 |                 if let Some(mut proto) = obj.proto.clone().map(Value::Object) {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 122 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `obj` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.39s
[INFO] [stderr] crater-edition-check: rscript2 v0.1.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking rscript2 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: reserved multi-hash token is forbidden
[INFO] [stdout]    --> src/parser/grammar.rs:166:11
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |           ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: sequences of two or more # are reserved for future use since Rust 2024
[INFO] [stdout] help: consider inserting whitespace here
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = # #parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: reserved multi-hash token is forbidden
[INFO] [stdout]    --> src/parser/grammar.rs:166:55
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |                                                       ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: sequences of two or more # are reserved for future use since Rust 2024
[INFO] [stdout] help: consider inserting whitespace here
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ # #parse_string_literal(end) { inner }
[INFO] [stdout]     |                                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: reserved multi-hash token is forbidden
[INFO] [stdout]    --> src/parser/grammar.rs:166:11
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |           ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: sequences of two or more # are reserved for future use since Rust 2024
[INFO] [stdout] help: consider inserting whitespace here
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = # #parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: reserved multi-hash token is forbidden
[INFO] [stdout]    --> src/parser/grammar.rs:166:55
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |                                                       ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: sequences of two or more # are reserved for future use since Rust 2024
[INFO] [stdout] help: consider inserting whitespace here
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ # #parse_string_literal(end) { inner }
[INFO] [stdout]     |                                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: undefined rule `parse_string_literal`
[INFO] [stdout]    --> src/parser/grammar.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: undefined rule `parse_string_literal`
[INFO] [stdout]    --> src/parser/grammar.rs:166:57
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `file::FileLoader`
[INFO] [stdout]  --> src/module/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use file::FileLoader;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `peg::ParseLiteral`
[INFO] [stdout]   --> src/parser/grammar.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     use peg::ParseLiteral;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `expr`
[INFO] [stdout]  --> src/parser/mod.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 |     parser::{expr, module},
[INFO] [stdout]   |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `object`
[INFO] [stdout]    --> src/runtime/engine.rs:103:14
[INFO] [stdout]     |
[INFO] [stdout] 103 | macro_rules! object {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EngineState`
[INFO] [stdout]   --> src/runtime/mod.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use engine::{Engine, EngineState};
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: undefined rule `parse_string_literal`
[INFO] [stdout]    --> src/parser/grammar.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: undefined rule `parse_string_literal`
[INFO] [stdout]    --> src/parser/grammar.rs:166:57
[INFO] [stdout]     |
[INFO] [stdout] 166 |         = ##parse_string_literal(start) _ inner:r() _ ##parse_string_literal(end) { inner }
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `file::FileLoader`
[INFO] [stdout]  --> src/module/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use file::FileLoader;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `peg::ParseLiteral`
[INFO] [stdout]   --> src/parser/grammar.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     use peg::ParseLiteral;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `expr`
[INFO] [stdout]  --> src/parser/mod.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 |     parser::{expr, module},
[INFO] [stdout]   |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `object`
[INFO] [stdout]    --> src/runtime/engine.rs:103:14
[INFO] [stdout]     |
[INFO] [stdout] 103 | macro_rules! object {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EngineState`
[INFO] [stdout]   --> src/runtime/mod.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use engine::{Engine, EngineState};
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rscript2` (lib test) due to 4 previous errors; 5 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `rscript2` (lib) due to 4 previous errors; 5 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "7d42e1abe35863c8271274950345629afbe8c45f24b924b87219743417393e5a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7d42e1abe35863c8271274950345629afbe8c45f24b924b87219743417393e5a", kill_on_drop: false }`
[INFO] [stdout] 7d42e1abe35863c8271274950345629afbe8c45f24b924b87219743417393e5a
